package com.desay.pangoo.itmt.controller.vo;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;

/**
 * @author uidq1163
 */
@ApiModel(value = "提案申请")
@Data
public class TechOnlineReviewVo {

	/** 提案名称 */
	@ApiModelProperty(value = "提案名称")
	private String proposalName;

	/** 说明 */
	@ApiModelProperty(value = "说明")
	private String description;

	/** 技术等级:核心:1，关键:2，通用:3，一般:4 */
	@ApiModelProperty(value = "技术等级:核心:1，关键:2，通用:3，一般:4")
	private Integer techLevel;

	/** 是否跨域技术 */
	@ApiModelProperty(value = "是否跨域技术")
	private Boolean isCross;

	/** 是否颠覆性技术 */
	@ApiModelProperty(value = "是否颠覆性技术")
	private Boolean isDisruptive;

	/** 附件信息 */
	@ApiModelProperty(value = "附件信息")
	private Set<Long> fileIds;

	/** 责任人 */
	@ApiModelProperty(value = "责任人")
	private Set<String> responsibles;

	/** 技术工作组 */
	@ApiModelProperty(value = "技术工作组")
	private Long workGroupId;

	/** Crossbreed技术工作组 */
	@ApiModelProperty(value = "Crossbreed技术工作组")
	private Long crossBreedWorkGroupId;

	/** 技术路线 */
	@ApiModelProperty(value = "技术路线")
	private String roadMap;

	/** 子技术 */
	@ApiModelProperty(value = "子技术")
	private String subsidiary;

	@ApiModelProperty(value = "数据版本号")
	private Long version;

	@ApiModelProperty(value = "评审类型:技术规划评审:1，技术定义与研究任务书评审:2，技术成果交付评审:3，BU TMT批注技术课题：4")
	private Integer reviewType;

	@ApiModelProperty(value = "技术成果交付评审:系统中已有“技术定义与研究任务书评审”，相关性反馈及评委信息")
	List<TechOnlineReviewRelevantVo2> relevants;

	/** 评审会时间 */
	@ApiModelProperty(value = "评审会时间 (yyyy-MM-dd)")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date reviewDate;

	@ApiModelProperty(value = "评审会时间：hh:mm ~ hh:mm)")
	private String reviewDateHours;

	/** 开发责任主体 */
	@ApiModelProperty(value = "开发责任主体")
	private Set<Long> dutyBuss;
	/** 开发费用归属 */
	@ApiModelProperty(value = "开发费用归属")
	private Set<Long> costBuss;

	/** 关联父级ID */
	@ApiModelProperty(value = "多次评审，上次评审ID")
	private Long parentId;

	/** 是否开启TMT评审反馈 */
	@ApiModelProperty(value = "是否开启TMT评审反馈")
	private Boolean openReview;

	@ApiModelProperty(value = "技术点信息ID")
	private Set<Long> techIds;

	@ApiModelProperty(value = "ALM需求编号")
	private String almCode;

	/** 上级技术点（可选）， */
	@ApiModelProperty(value = "上级技术点（可选），")
	private String parentTech;

	/** 产品功能点（必填） */
	@ApiModelProperty(value = "产品功能点（必填）")
	private String productFunction;

	/**
	 * 技术应用范围（必填），
	 */
	@ApiModelProperty(value = "技术应用范围（必填）")
	private String techScope;

	/**
	 * 技术性能指标 （必填）
	 */
	@ApiModelProperty(value = "技术性能)")
	private String techPerformance;
	/**
	 * 技术来源（必填），
	 */
	@ApiModelProperty(value = "技术来源（必填）")
	private String techSource;
	/**
	 * 预计第一次应用时间（必填）
	 */
	@ApiModelProperty(value = "预计第一次应用时间（yyyymmdd）")
	private String firstUseDate;

	/** 技术领先性:领先 追平 落后 （ 三选一） */
	@ApiModelProperty(value = "技术领先性:1-领先,2-追平,3-落后 （ 三选一）")
	private Integer technologyLeadership;

	/** 技术贡献性:主要卖点 次要卖点 基础技术 （ 三选一） */
	@ApiModelProperty(value = "技术贡献性:1-主要卖点,2-次要卖点,3-基础技术 （ 三选一）")
	private Integer technologyContribution;

	/** 核心技术 */
	@ApiModelProperty(value = "核心技术:1-是,0否")
	private Integer coreTechnology;

	/** 关联项目信息ID */
	@ApiModelProperty(value = "关联项目信息ID")
	private Long projectId;

	/** 技术领头人 */
	@ApiModelProperty(value = "技术领头人")
	private String techLeaders;

	/** 核心成员 */
	@ApiModelProperty(value = "核心成员")
	private String coreMembers;

	/** 一般成员 */
	@ApiModelProperty(value = "一般成员")
	private String generalMembers;
}
